package com.cskaoyan.javase.oop2._1extends._9final._1clazz;

/**
 * @description: final修饰class
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/

/**
 * final修饰class表示最终的,最后的类,表示该类无法被继承
 * 语法:
 *      [访问权限修饰符] final class 类名{
 *          //类体
 *      }
 *
 * 注意事项:
 *      1.final修饰class后,该类就无法被继承了,但是该类的其他使用不会受到影响,比如创建对象,调用成员方法等等
 *          继承别的类也是可以的
 *      2.什么样的类需要设置成final?
 *          不需要,不想要被子类继承的类,才需要设置为final修饰
 *          当你认为一个类设计的已经很完善了,功能足够强大了,不需要再让子类去扩展它了
 *          或者你认为这个类定义完了以后不希望被子类继承,然后修改,这些情况都可以把类设置成final
 *      3.正常情况我们很少会主动把一个类设置成final,因为没有太大必要
 *          常见的final修饰类都在jdk源码中,比如String,System,四类八种基本数据类型的包装类和Void
 *
 */
public class Demo {
    public static void main(String[] args) {
        A a = new A();
        System.out.println(a.a);
        a.test();
        A.testStatic();
    }
}
final class A {
    int a = 10;
    public void test(){}
    public static void testStatic(){}
}

//Cannot inherit from final 'com.cskaoyan.javase.oop2._1extends._9final._1clazz.A'
//class B extends A{
//}